package de.hauschild.orbitvm.vm.instruction.impl;

import de.hauschild.orbitvm.vm.instruction.Instruction;

/**
 * Abstract implementation of {@link Instruction} providing basic functionality.
 * 
 * @since 1.0.0
 * @author Klaus Hauschild
 */
public abstract class AbstractInstruction implements Instruction {

  private final int instructionCounter;

  /**
   * Instantiates a new {@link AbstractInstruction}.
   * 
   * @param theInstructionCounter
   *          the instruction counter
   */
  public AbstractInstruction(final int theInstructionCounter) {
    instructionCounter = theInstructionCounter;
  }

  /**
   * Gets the instruction counter.
   * 
   * @return the instruction counter
   */
  public int getInstructionCounter() {
    return instructionCounter;
  }

}
